﻿using System.ServiceModel;
using Citi.Scheduler.Domain;
using Citi.Scheduler.Wcf.DataContracts;

namespace Citi.Scheduler.Wcf
{
    [ServiceContract]
    public interface IMonitor
    {
        [OperationContract]
        RoutineExecutionStatus GetStatus(int routineExecutionId);

        [OperationContract]
        RoutineExecutionHistoryDataContract GetLastHistory(int routineExecutionId);

        [OperationContract]
        RoutineExecutionDataContract GetRoutineExecuting(int machineId);

        [OperationContract]
        RoutineExecutionDataContract GetRoutineExecutingByMachineHostname(string hostname);

        [OperationContract]
        bool IsMachineRunningRoutine(int machineId);

        [OperationContract]
        bool IsMachineRunningRoutineByMachineHostname(string hostname);
    }
}
